package me.a01mymap;

import java.util.*;

public class A06_MapDemo6 {
    public static void main(String[] args) {
        //统计哪个景点去的人多
        //定义一个数组，存储景点
        String[] arr = {"A", "B", "C", "D"};

        //创建集合把投票的结果存储起来
        ArrayList<String> list = new ArrayList<>();

        //生成随机数，模拟学生投票
        Random r = new Random();
        for (int i = 0; i < 80; i++) {
            int index = r.nextInt(arr.length);
            list.add(arr[index]);
        }

        //如果统计的数据比较多，使用计数器不方便，可以用map集合
        HashMap<String, Integer> hm = new HashMap<>();
        for (String name : list) {
            //判断当前景点在集合中是否存在
            if (hm.containsKey(name)) {
                //存在
                int count = hm.get(name);
                count++;
                //把新的次数添加到集合中
                hm.put(name, count);
            } else {
                hm.put(name, 1);
            }
        }
        System.out.println(hm);

        //找投票次数最多的景点
        //不能以景点为参照物，因为有可能出现一个景点没人投票的情况，这时集合中就不会存储此景点
        int max = 0;
        Set<Map.Entry<String, Integer>> entries = hm.entrySet();
        for (Map.Entry<String, Integer> entry : entries) {
            int count = entry.getValue();
            if (count > max) {
                max = count;
            }
        }
        System.out.println(max);

        //现在只找到了最大数，还要找到对应的景点
        for (Map.Entry<String, Integer> entry : entries) {
            int count = entry.getValue();
            if (count == max) {
                System.out.println(entry.getKey());
            }
        }
    }
}
